<html>
   <head>
      <link rel="stylesheet" type="text/css" href="style.css" />
   </head>
   <body onload="">
<h2 class="comptitle">Simple Module <i>BaseApp</i></h2>
<b>Package:</b> oversim.common<br/><b>File: <a href="src-common-BaseApp.ned.html">src/common/BaseApp.ned</a></b><br/><p><a href="../doxy/classBaseApp.html" target="mainframe"><b>C++ definition</b></a></p>

<p>Base class for application implementations</p>
<p><b>Author:</b> Ingmar Baumgart, Bernhard Heep, Stephan Krause</p>
<img src="oversim.common.BaseApp-type.png" ismap="yes" usemap="#type-diagram"/><map name="type-diagram">
<area shape="rect" href="oversim.common.BaseApp.html" title="BaseApp" alt="BaseApp" coords="0,0,96,40">
</map>
<h3 class="subtitle">Usage diagram:</h3>
<p>The following diagram shows usage relationships between types.
Unresolved types are missing from the diagram.
Click <a href="full-ned-usage-diagram.html">here</a> to see the full picture.</p>
<img src="oversim.common.BaseApp-usage.png" ismap="yes" usemap="#usage-diagram"/><map name="usage-diagram"><area shape="rect" id="node1" href="oversim.common.BaseApp.html" title="Simple Module BaseApp" alt="" coords="5,6,80,34">
</map>
<h3 class="subtitle">Inheritance diagram:</h3>
<p>The following diagram shows inheritance relationships for this type.
Unresolved types are missing from the diagram.
Click <a href="full-ned-inheritance-diagram.html">here</a> to see the full picture.</p>
<img src="oversim.common.BaseApp-inheritance.png" ismap="yes" usemap="#inheritance-diagram"/><map name="inheritance-diagram"><area shape="rect" id="node1" href="oversim.common.BaseApp.html" title="Simple Module BaseApp" alt="" coords="957,83,1032,111">
<area shape="rect" id="node4" href="oversim.applications.almtest.ALMTest.html" title="Simple Module ALMTest" alt="" coords="5,161,80,189">
<area shape="rect" id="node6" href="oversim.common.BootstrapList.html" title="Simple Module BootstrapList" alt="" coords="104,161,203,189">
<area shape="rect" id="node8" href="oversim.common.cbr.CBRDHT.html" title="Simple Module CBRDHT" alt="" coords="227,161,304,189">
<area shape="rect" id="node10" href="oversim.applications.dht.DHT.html" title="Simple Module DHT" alt="" coords="328,161,400,189">
<area shape="rect" id="node12" href="oversim.tier2.dhttestapp.DHTTestApp.html" title="Simple Module DHTTestApp" alt="" coords="424,161,523,189">
<area shape="rect" id="node14" href="oversim.applications.giasearchapp.GIASearchApp.html" title="Simple Module GIASearchApp" alt="" coords="547,161,656,189">
<area shape="rect" id="node16" href="oversim.applications.i3.I3.html" title="Simple Module I3" alt="" coords="680,161,752,189">
<area shape="rect" id="node18" href="oversim.applications.kbrtestapp.KBRTestApp.html" title="Simple Module KBRTestApp" alt="" coords="776,161,875,189">
<area shape="rect" id="node20" href="oversim.common.cbr.Landmark.html" title="Simple Module Landmark" alt="" coords="899,161,976,189">
<area shape="rect" id="node22" href="oversim.applications.myapplication.MyApplication.html" title="Simple Module MyApplication" alt="" coords="1000,161,1104,189">
<area shape="rect" id="node24" href="oversim.common.NeighborCache.html" title="Simple Module NeighborCache" alt="" coords="1128,161,1240,189">
<area shape="rect" id="node26" href="oversim.tier2.p2pns.P2pns.html" title="Simple Module P2pns" alt="" coords="1264,161,1336,189">
<area shape="rect" id="node28" href="oversim.applications.scribe.Scribe.html" title="Simple Module Scribe" alt="" coords="1360,161,1432,189">
<area shape="rect" id="node30" href="oversim.tier2.simmud.SimMud.html" title="Simple Module SimMud" alt="" coords="1456,161,1528,189">
<area shape="rect" id="node32" href="oversim.applications.simplegameclient.SimpleGameClient.html" title="Simple Module SimpleGameClient" alt="" coords="1552,161,1683,189">
<area shape="rect" id="node34" href="oversim.applications.tcpexampleapp.TCPExampleApp.html" title="Simple Module TCPExampleApp" alt="" coords="1707,161,1829,189">
<area shape="rect" id="node36" href="oversim.common.TierDummy.html" title="Simple Module TierDummy" alt="" coords="1853,161,1944,189">
<area shape="rect" id="node38" href="oversim.tier3.xmlrpcinterface.XmlRpcInterface.html" title="Simple Module XmlRpcInterface" alt="" coords="1968,161,2088,189">
<area shape="rect" id="node2" href="oversim.common.BaseRpc.html" title="Simple Module BaseRpc" alt="" coords="957,6,1032,34">
</map>
<h3 class="subtitle">Extends:</h3>
<table>
<tr>
   <td>
      <a href="oversim.common.BaseRpc.html">BaseRpc</a>
      <i> (simple&nbsp;module)</i>
   </td>
   <td>

<p>Base module for simple RPC communication</p>
   </td>
</tr>
</table>
<h3 class="subtitle">Known subclasses:</h3>
<table>
<tr>
   <td>
      <a href="oversim.applications.almtest.ALMTest.html">ALMTest</a>
      <i> (simple&nbsp;module)</i>
   </td>
   <td>
<i>(no description)</i>
   </td>
</tr>
<tr>
   <td>
      <a href="oversim.common.BootstrapList.html">BootstrapList</a>
      <i> (simple&nbsp;module)</i>
   </td>
   <td>

<p>The <a href="oversim.common.BootstrapList.html">BootstrapList</a> module maintains a list of bootstrap node
candidates received from various sources (<a href="oversim.common.GlobalNodeList.html">GlobalNodeList</a> for
simulations and Zeroconf for SingleHostUnderlay). This list is also
used to detect overlay partitions and triggers the merging process.</p>
   </td>
</tr>
<tr>
   <td>
      <a href="oversim.common.cbr.CBRDHT.html">CBRDHT</a>
      <i> (simple&nbsp;module)</i>
   </td>
   <td>

<p>Simple module of the <a href="oversim.applications.dht.DHT.html">DHT</a></p>
   </td>
</tr>
<tr>
   <td>
      <a href="oversim.applications.dht.DHT.html">DHT</a>
      <i> (simple&nbsp;module)</i>
   </td>
   <td>

<p>Simple module of the <a href="oversim.applications.dht.DHT.html">DHT</a></p>
   </td>
</tr>
<tr>
   <td>
      <a href="oversim.tier2.dhttestapp.DHTTestApp.html">DHTTestApp</a>
      <i> (simple&nbsp;module)</i>
   </td>
   <td>

<p>Simple module of the <a href="oversim.applications.dht.DHT.html">DHT</a> test application</p>
   </td>
</tr>
<tr>
   <td>
      <a href="oversim.applications.giasearchapp.GIASearchApp.html">GIASearchApp</a>
      <i> (simple&nbsp;module)</i>
   </td>
   <td>

<p>Test application for testing GIA search-protocol</p>
   </td>
</tr>
<tr>
   <td>
      <a href="oversim.applications.i3.I3.html">I3</a>
      <i> (simple&nbsp;module)</i>
   </td>
   <td>

<p>Module for <a href="oversim.applications.i3.I3.html">I3</a> servers</p>
   </td>
</tr>
<tr>
   <td>
      <a href="oversim.applications.kbrtestapp.KBRTestApp.html">KBRTestApp</a>
      <i> (simple&nbsp;module)</i>
   </td>
   <td>

<p>Simple module of the KBR test application</p>
   </td>
</tr>
<tr>
   <td>
      <a href="oversim.common.cbr.Landmark.html">Landmark</a>
      <i> (simple&nbsp;module)</i>
   </td>
   <td>

<p><b>Author:</b> Fabian Hartmann</p>
   </td>
</tr>
<tr>
   <td>
      <a href="oversim.applications.myapplication.MyApplication.html">MyApplication</a>
      <i> (simple&nbsp;module)</i>
   </td>
   <td>
<i>(no description)</i>
   </td>
</tr>
<tr>
   <td>
      <a href="oversim.common.NeighborCache.html">NeighborCache</a>
      <i> (simple&nbsp;module)</i>
   </td>
   <td>

<p>Module for collecting neighborhood information (rtt, coordinates, ...)</p>
<p><b>Author:</b> Bernhard Heep</p>
<p><b>Author:</b> Antonio Zea</p>
   </td>
</tr>
<tr>
   <td>
      <a href="oversim.tier2.p2pns.P2pns.html">P2pns</a>
      <i> (simple&nbsp;module)</i>
   </td>
   <td>

<p>The main module of the P2PNS implementation</p>
   </td>
</tr>
<tr>
   <td>
      <a href="oversim.applications.scribe.Scribe.html">Scribe</a>
      <i> (simple&nbsp;module)</i>
   </td>
   <td>
<i>(no description)</i>
   </td>
</tr>
<tr>
   <td>
      <a href="oversim.tier2.simmud.SimMud.html">SimMud</a>
      <i> (simple&nbsp;module)</i>
   </td>
   <td>
<i>(no description)</i>
   </td>
</tr>
<tr>
   <td>
      <a href="oversim.applications.simplegameclient.SimpleGameClient.html">SimpleGameClient</a>
      <i> (simple&nbsp;module)</i>
   </td>
   <td>
<i>(no description)</i>
   </td>
</tr>
<tr>
   <td>
      <a href="oversim.applications.tcpexampleapp.TCPExampleApp.html">TCPExampleApp</a>
      <i> (simple&nbsp;module)</i>
   </td>
   <td>
<i>(no description)</i>
   </td>
</tr>
<tr>
   <td>
      <a href="oversim.common.TierDummy.html">TierDummy</a>
      <i> (simple&nbsp;module)</i>
   </td>
   <td>

<p>A dummy module for Tier1-3 modules</p>
   </td>
</tr>
<tr>
   <td>
      <a href="oversim.tier3.xmlrpcinterface.XmlRpcInterface.html">XmlRpcInterface</a>
      <i> (simple&nbsp;module)</i>
   </td>
   <td>

<p>The main module of the XML-RPC interface</p>
   </td>
</tr>
</table>
<h3 class="subtitle">Parameters:</h3>
<table class="paramtable">
   <tr>
      <th>Name</th>
      <th>Type</th>
      <th>Default value</th>
      <th>Description</th>
   </tr>
<tr class="inherited">
   <td width="150">rpcUdpTimeout</td>
   <td width="100">
      <i>double</i>
   </td>
   <td width="120"></td>
   <td>
<p>default timeout value for direct RPCs</p>
   </td>
</tr>
<tr class="inherited">
   <td width="150">rpcKeyTimeout</td>
   <td width="100">
      <i>double</i>
   </td>
   <td width="120"></td>
   <td>
<p>default timeout value for routed RPCs</p>
   </td>
</tr>
<tr class="inherited">
   <td width="150">optimizeTimeouts</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120"></td>
   <td>
<p>calculate timeouts from measured RTTs
and network coordinates</p>
   </td>
</tr>
<tr class="inherited">
   <td width="150">rpcExponentialBackoff</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120"></td>
   <td>
<p>if true, doubles the timeout for
every retransmission</p>
   </td>
</tr>
<tr class="local">
   <td width="150">debugOutput</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120"></td>
   <td>
<p>enable debug output</p>
   </td>
</tr>
</table>
<h3 class="subtitle">Properties:</h3>
<table class="paramtable">
   <tr>
      <th>Name</th>
      <th>Value</th>
      <th>Description</th>
   </tr>
<tr>
   <td width="150">class</td>
   <td width="100"><i>BaseApp</i></td>
   <td></td>
</tr>
<tr>
   <td width="150">display</td>
   <td width="100"><i>i=block/app</i></td>
   <td></td>
</tr>
</table>
<h3 class="subtitle">Gates:</h3>
<table class="paramtable">
   <tr>
      <th>Name</th>
      <th>Direction</th>
      <th>Size</th>
      <th>Description</th>
   </tr>
<tr class="local">
   <td width="150">udpIn</xsl:if></td>
   <td width="100"><i>input</i></td>
   <td width="50"></td>   <td>
<p>gate from the UDP layer</p>
</td>
</tr>
<tr class="local">
   <td width="150">from_lowerTier</xsl:if></td>
   <td width="100"><i>input</i></td>
   <td width="50"></td>   <td>
<p>gate from the lower tier</p>
</td>
</tr>
<tr class="local">
   <td width="150">from_upperTier</xsl:if></td>
   <td width="100"><i>input</i></td>
   <td width="50"></td>   <td>
<p>gate from the upper tier</p>
</td>
</tr>
<tr class="local">
   <td width="150">direct_in</xsl:if></td>
   <td width="100"><i>input</i></td>
   <td width="50"></td>   <td>
<p>gate for sendDirect</p>
</td>
</tr>
<tr class="local">
   <td width="150">trace_in</xsl:if></td>
   <td width="100"><i>input</i></td>
   <td width="50"></td>   <td>
<p>gate for trace file commands</p>
</td>
</tr>
<tr class="local">
   <td width="150">tcpIn</xsl:if></td>
   <td width="100"><i>input</i></td>
   <td width="50"></td>   <td>
<p>gate from the TCP layer</p>
</td>
</tr>
<tr class="local">
   <td width="150">tcpOut</xsl:if></td>
   <td width="100"><i>output</i></td>
   <td width="50"></td>   <td>
<p>gate to the TCP layer</p>
</td>
</tr>
<tr class="local">
   <td width="150">udpOut</xsl:if></td>
   <td width="100"><i>output</i></td>
   <td width="50"></td>   <td>
<p>gate to the UDP layer</p>
</td>
</tr>
<tr class="local">
   <td width="150">to_lowerTier</xsl:if></td>
   <td width="100"><i>output</i></td>
   <td width="50"></td>   <td>
<p>gate to the lower tier</p>
</td>
</tr>
<tr class="local">
   <td width="150">to_upperTier</xsl:if></td>
   <td width="100"><i>output</i></td>
   <td width="50"></td>   <td>
<p>gate to the upper tier</p>
</td>
</tr>
</table>
<h3 class="subtitle">Source code:</h3>
<pre class="src"><span style="color: #808080; font-style: italic; ">//
// Base class for application implementations
//
// </span><span style="color: #000080; ">@author</span><span style="color: #808080; font-style: italic; "> Ingmar Baumgart, Bernhard Heep, Stephan Krause
//
</span><span style="color: #800000; font-weight: bold; ">simple</span><span style="color: #000000; "> </span><span style="color: #000000; ">BaseApp</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">extends</span><span style="color: #000000; "> </span><span style="color: #000000; ">BaseRpc</span><span style="color: #000000; ">
{
    </span><span style="color: #800000; font-weight: bold; ">parameters</span><span style="color: #000000; ">:
        </span><span style="color: #000000; font-weight: bold; ">@class</span><span style="color: #000000; ">(</span><span style="color: #000000; ">BaseApp</span><span style="color: #000000; ">);
        </span><span style="color: #000000; font-weight: bold; ">@display</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;i=block/app&quot;</span><span style="color: #000000; ">);
        </span><span style="color: #000080; font-weight: bold; ">bool</span><span style="color: #000000; "> </span><span style="color: #000000; ">debugOutput</span><span style="color: #000000; ">;    </span><span style="color: #808080; font-style: italic; ">// enable debug output
</span><span style="color: #000000; ">
    </span><span style="color: #800000; font-weight: bold; ">gates</span><span style="color: #000000; ">:
        </span><span style="color: #000080; font-weight: bold; ">input</span><span style="color: #000000; "> </span><span style="color: #000000; ">udpIn</span><span style="color: #000000; ">;    </span><span style="color: #808080; font-style: italic; ">// gate from the UDP layer
</span><span style="color: #000000; ">        </span><span style="color: #000080; font-weight: bold; ">input</span><span style="color: #000000; "> </span><span style="color: #000000; ">from_lowerTier</span><span style="color: #000000; ">;    </span><span style="color: #808080; font-style: italic; ">// gate from the lower tier
</span><span style="color: #000000; ">        </span><span style="color: #000080; font-weight: bold; ">input</span><span style="color: #000000; "> </span><span style="color: #000000; ">from_upperTier</span><span style="color: #000000; ">;    </span><span style="color: #808080; font-style: italic; ">// gate from the upper tier
</span><span style="color: #000000; ">        </span><span style="color: #000080; font-weight: bold; ">input</span><span style="color: #000000; "> </span><span style="color: #000000; ">direct_in</span><span style="color: #000000; ">;    </span><span style="color: #808080; font-style: italic; ">// gate for sendDirect
</span><span style="color: #000000; ">        </span><span style="color: #000080; font-weight: bold; ">input</span><span style="color: #000000; "> </span><span style="color: #000000; ">trace_in</span><span style="color: #000000; ">;    </span><span style="color: #808080; font-style: italic; ">// gate for trace file commands
</span><span style="color: #000000; ">        </span><span style="color: #000080; font-weight: bold; ">input</span><span style="color: #000000; "> </span><span style="color: #000000; ">tcpIn</span><span style="color: #000000; ">;    </span><span style="color: #808080; font-style: italic; ">// gate from the TCP layer
</span><span style="color: #000000; ">        </span><span style="color: #000080; font-weight: bold; ">output</span><span style="color: #000000; "> </span><span style="color: #000000; ">tcpOut</span><span style="color: #000000; ">;    </span><span style="color: #808080; font-style: italic; ">// gate to the TCP layer
</span><span style="color: #000000; ">        </span><span style="color: #000080; font-weight: bold; ">output</span><span style="color: #000000; "> </span><span style="color: #000000; ">udpOut</span><span style="color: #000000; ">;    </span><span style="color: #808080; font-style: italic; ">// gate to the UDP layer
</span><span style="color: #000000; ">        </span><span style="color: #000080; font-weight: bold; ">output</span><span style="color: #000000; "> </span><span style="color: #000000; ">to_lowerTier</span><span style="color: #000000; ">;    </span><span style="color: #808080; font-style: italic; ">// gate to the lower tier
</span><span style="color: #000000; ">        </span><span style="color: #000080; font-weight: bold; ">output</span><span style="color: #000000; "> </span><span style="color: #000000; ">to_upperTier</span><span style="color: #000000; ">;    </span><span style="color: #808080; font-style: italic; ">// gate to the upper tier
</span><span style="color: #000000; ">}

</span></pre>
   <hr><p class="footer"><a href="http://creativecommons.org/licenses/by-sa/3.0" target="_top"><img src="by-sa.png"></a> This documentation is released under the <a href="http://creativecommons.org/licenses/by-sa/3.0" target="_top">Creative Commons license</a></p>
   </body>
</html>
